package com.fjh.shop.user.model.dto;

import lombok.Data;

/**
 * 会员账号绑定数据传输对象
 * <p>
 * 用于绑定手机号、邮箱或微信OpenID到会员账号
 * <p>
 * 安全注意事项：
 * 1. 验证码应该有有效期限制
 * 2. OpenID应该来自可信的微信服务端
 * 3. 绑定操作需要验证用户身份
 * <p>
 * 使用场景：
 * 1. 新用户通过微信登录后绑定手机号
 * 2. 已登录用户绑定新邮箱
 * 3. 已登录用户绑定新手机号
 * <p>
 * 初学者指南：
 * - 绑定操作通常需要两步验证
 * - 每个字段都是可选的，取决于绑定类型
 *
 * @author wuyunbin
 * @since 2025-07-02
 */
@Data
public class MemberBindAccountDTO {
    /**
     * 要绑定的手机号码
     * 格式要求：11位数字，符合中国手机号格式
     */
    private String mobile;

    /**
     * 要绑定的电子邮箱
     * 格式要求：符合标准邮箱格式
     */
    private String email;

    /**
     * 短信或邮箱验证码
     * 要求：
     * - 通常6位数字
     * - 有时效性(如5分钟有效)
     */
    private String code;

    /**
     * 微信OpenID
     * 说明：
     * - 来自微信登录接口
     * - 每个用户对每个应用唯一
     */
    private String openId;
}
